This disclosure relates to the field of pattern recognition in artificial intelligence and more specifically to a method for pattern matching that identifies loose patterns in input data segments.
A pattern may be defined as a string that matches another string within a set of data. A string may comprise one or more characters, symbols, or expressions. Herein, characters, symbols, expressions, elements, etc. will be more generally referred to by the term “symbols”. For example, the string ‘ABC’ may be considered a pattern in the data set ‘ABCABC’, and similarly in data set ‘ABCddABC’. U.S. patent application Ser. No. 11/550,714, filed Oct. 18, 2006, entitled “Intelligence Engine Software Architecture”, and incorporated by reference herein for all purposes, classifies patterns as “tight” or “loose”. In general, tight patterns refer to strings that reoccur or repeat in a particular sequence or order within a set of data. Loose patterns refer to discrete symbols that reoccur within a set of data in a non-sequential, non-ordered manner. For example, in a data set 1, DS1=3-2-1-5-4-2 and a data set 2, DS2=1-5-0-4-3-5, the loose pattern would be 1-3-4-5.
Pattern matching algorithms, such as Rabin-Karp, Knuth-Morris-Pratt, Boyer-Moore, and other similar algorithms well known in the art are particularly efficient at identifying tight patterns in data sets. However, in data sets that contain loose patterns, conventional pattern matching algorithms are ineffective. A need exists for a pattern matching approach that can identify loose patterns in data sets.